EventBridge Schedulerでインスタンスを平日12~16時で起動するよう設定してみた

EventBridge Schedulerでインスタンスを平日12~16時で起動するよう設定してみた

Clock Icon2024.10.01

はじめに

かつまたです。今回はEventBridge SchedulerでEC2を平日12時に起動、16時に停止することで不必要な時間帯の停止し忘れによる料金発生を抑える構成を作成してみたので手順を記述していきます。

前提条件

  • 起動と停止時刻を設定したいEC2を起動済み
  • インスタンスIDを控えてある

IAMロールとポリシー作成

1.IAMの「ポリシーを作成」からJSONタブを開き、インスタンスの起動と停止を許可する以下のポリシーを記述します。ポリシー名を記入してポリシーを作成します。

json
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "arn:aws:ec2:リージョン:アカウントID:instance/インスタンスID"
        }
    ]
}

アクセス許可記述.png

ポリシー作成.png

2.「ロールを作成」から、「信頼するエンティティの選択」画面で、「カスタム信頼ポリシー」を選択します。EventBridge Schedulerにこのロールの権限を与える以下のポリシーを記述します。

json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "scheduler.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

ポリスー記述.png

3.「許可を追加」で先ほど作成したポリシーを検索し(例:ec2-stop-start-policy)、選択します。ロール名を記入しロールを作成します。
ロール作成でポリシー選択.png

EventBridge Scheduler作成

起動スケジュール

1.EventBridgeの「スケジュール」→「スケジュールを作成」を選択しスケジュール名を記入します。
2.「スケジュールのパターン」を以下のように設定します。

  • 頻度:定期的なスケジュール
  • タイムゾーン:Asia/Tokyo
  • スケジュールの種類:cron ベースのスケジュール
  • cron式
時間 日付 曜日
0 12 ? * MON-FRI *
  • フレックスタイムウィンドウ:5分

Startのスケジュール.png

3.「ターゲットの選択」で「すべてのAPI」を選択し、検索ボックスから「EC2」を検索→「Amazon EC2」を選択し、続けて検索ボックスから「StartInstances」を検索し、選択する。
スケジュールでEC2 API選択.png

4.「StartInstances」に下図のようにインスタンスIDを記入する。
インスタンスID記述.png

5.「設定」では「スケジュール完了後のアクション」を「NONE」に設定し、「アクセス許可」では先ほど作成したロールを選択します。
スケジュールでロール選択.png

停止スケジュール

起動スケジュールと同様に作成を行います。
1.「スケジュールのパターン」のcron式は以下のように設定します。

時間 日付 曜日
0 16 ? * MON-FRI *

Stopのスケジュール.png

2.「ターゲットの選択」では「EC2」から「Stop Instance」を選択します。
スクリーンショット 2024-10-01 14.08.43.png

動作確認

作成後、CloudTrailから設定した時間(平日12時と16時)にインスタンスの起動と停止が正常に行われているか、記録を確認します。
スクリーンショット 2024-10-01 16.48.53

参考

https://www.cloudbuilders.jp/articles/2337/

おわりに

今回の検証でうっかりEC2の停止を忘れてしまった場合でも自動で停止して料金を抑えることができ、簡易的な仕組みで解決!を実践することができました。ご覧いただきありがとうございました。

アノテーション株式会社について

アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.